package com.business.exam.service;

import java.util.List;

import com.business.exam.domain.ExamQbCategory;
import com.business.exam.domain.ExamQbCategoryTreeSelect;

/**
 * 题库分类Service接口
 *
 * @author zhanglele
 * @date 2023-11-11
 */
public interface IExamQbCategoryService
{
    /**
     * 查询题库分类
     *
     * @param categoryId 题库分类主键
     * @return 题库分类
     */
    public ExamQbCategory selectExamQbCategoryByCategoryId(Long categoryId);
    public List<ExamQbCategoryTreeSelect> selectCategoryTreeList(ExamQbCategory examQbCategory);
    public List<ExamQbCategory> buildQbCategoryTree(List<ExamQbCategory> categories);
    public List<ExamQbCategoryTreeSelect> buildQbCategoryTreeSelect(List<ExamQbCategory> categories);

    /**
     * 查询题库分类列表
     *
     * @param examQbCategory 题库分类
     * @return 题库分类集合
     */
    public List<ExamQbCategory> selectExamQbCategoryList(ExamQbCategory examQbCategory);

    /**
     * 新增题库分类
     *
     * @param examQbCategory 题库分类
     * @return 结果
     */
    public int insertExamQbCategory(ExamQbCategory examQbCategory);

    /**
     * 修改题库分类
     *
     * @param examQbCategory 题库分类
     * @return 结果
     */
    public int updateExamQbCategory(ExamQbCategory examQbCategory);

    /**
     * 批量删除题库分类
     *
     * @param categoryIds 需要删除的题库分类主键集合
     * @return 结果
     */
    public int deleteExamQbCategoryByCategoryIds(Long[] categoryIds);

    /**
     * 删除题库分类信息
     *
     * @param categoryId 题库分类主键
     * @return 结果
     */
    public int deleteExamQbCategoryByCategoryId(Long categoryId);
}
